package dados;

import java.sql.SQLException;
import javax.swing.JOptionPane;
import negocios.Familia;

public class BancoFamilias implements IBancoFamilias {

	private static BancoFamilias bancoFamilias = null;

    private BancoFamilias() {

        // Contrutor privado, padrao singleton.

    }

   public static BancoFamilias getInstance() {

        if (bancoFamilias == null) {

            bancoFamilias = new BancoFamilias();

        }

        return bancoFamilias;

    }

	@Override public Familia consultarFamilia(Familia familia) {
		
        try {

            ConectaBDFamilias conexao = new ConectaBDFamilias();

            return conexao.consultarFamilia(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;
	}

	@Override public void editarFamilia(Familia familia) {

        try {

            ConectaBDFamilias conexao = new ConectaBDFamilias();

            conexao.editarFamilia(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da edição", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

	@Override
	public void excluirFamilia(Familia familia) {

        try {

            ConectaBDFamilias conexao = new ConectaBDFamilias();

            conexao.excluirFamilia(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da remoção", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

    }

	@Override
	public void inserirFamilia(Familia familia) {

        try {

            ConectaBDFamilias conexao = new ConectaBDFamilias();

            conexao.inserirFamilia(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

	@Override
	public Object[] listarFamilias() {

        try {

            ConectaBDFamilias conexao = new ConectaBDFamilias();

            return conexao.listarFamilias();

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;

	}

}
